//引入API
import { reqGetSearchInfo } from '@/api'
//search模块的小仓库
//vuex的四大核心概念必须要有
const state = {
    searchList: {}
};
const mutations = {
    GETSEARCHLIST(state, searchList) {
        state.searchList = searchList
    }
};
const actions = {
    //获取search模块数据
    async getSearchList({ commit }, params = {}) {
        //当前reqGetSearchInfo这个函数在调用获取服务器数据时，至少传递一个参数（空对象）
        // `this.$store.dispatch('action', payload);`
        //params形参：当用户派发action时，当第二个参数传递过来时，至少是一个空对象。
        let result4 = await reqGetSearchInfo(params);
        if (result4.code == 200) {
            commit("GETSEARCHLIST", result4.data);
        }
    }
};

//计算属性
//项目当中getters主要的作用：简化仓库中的数据。
const getters = {
    //当前的state是小仓库search里的state，并非大仓库中的那个state。
    goodsList(state) {
        //这样书写是会有问题的。
        //若网络不给力或没有网络，则state.searchList.goodsList应返回的是undefined；所以此时计算新的属性的属性值至少给一个数组。
        return state.searchList.goodsList || [];
    },
    trademarkList(state) {
        //这样书写是会有问题的
        return state.searchList.trademarkList;
    },
    attrsList(state) {
        //这样书写是会有问题的
        return state.searchList.attrsList;
    },

}

export default {
    state,
    mutations,
    actions,
    getters
}